<?php

/**
 * Интерфейс File -- файл.
 * 
 * @package RL
 * @author Lucky <lucky@jetstyle.ru> 
 * @version $Id: Interface.php 62 2007-09-05 08:27:21Z lucky $
 */
interface File 
{
	public function open ($mode);
	public function read ($size);
	public function close ();
	public function eof ();
	public function getPath ();
}


/**
 * Интерфейс Dir -- директория.
 * 
 * @package RL
 * @author Lucky <lucky@jetstyle.ru> 
 * @version $Id: Interface.php 62 2007-09-05 08:27:21Z lucky $
 */
interface Dir 
{
	public function read ();
	public function close ();
	public function eof ();
	public function getPath ();
}


interface Config
{
	public function get ($key);
	public function set ($key, $value);
}


/**
 * Интерфейс ConfigValue -- значение параметр конфига.
 *
 * Характеризуется атрибутами: 
 *   имя параметра;
 *   значение параметра;
 *
 * Имя параметра всегда строка.
 * Значение параметра -- что угодно.
 *
 * @package RL
 * @author Lucky <lucky@jetstyle.ru> 
 * @version $Id: Interface.php 62 2007-09-05 08:27:21Z lucky $
 */
interface ConfigValue
{
	/**
	 * getName вернуть имя параметра.
	 * 
	 * @access public
	 * @return string
	 */
	public function getName ();

	/**
	 * getValue венруть значение параметра.
	 * 
	 * @access public
	 * @return mixed
	 */
	public function getValue ();
	/**
	 * setValue присвоить новое значение.
	 * 
	 * @param mixed $value новое значение параметра конфигурации.
	 * @access public
	 * @return Object
	 */
	public function setValue ($value);
}


interface ConfigStorage
{
	public function save ($key, $value);
	public function find ($key);
}
